package com.txts.road.app.event.service;

import com.txts.road.app.event.model.entity.EventEntity;
import com.txts.road.app.event.model.query.EventMomentQuery;
import com.txts.road.app.event.model.query.EventQuery;

import com.baomidou.mybatisplus.extension.service.IService;

import com.txts.road.app.event.model.vo.*;
import com.txts.road.app.event.model.vo.*;

import java.util.List;

/**
 * 赛事活动服务类
 *
 * @author baoyr
 * @since 2025-07-17 10:47
 */
public interface EventService extends IService<EventEntity> {

    /**
     * 获取 Banner 列表
     *
     * @return Banner 列表
     */
    List<EventNewsVO> getBannerList();


    /**
     * 获取赛事列表
     *
     * @param queryDTO 查询参数
     * @return 赛事列表
     */
    List<EventVO> getEventList(EventQuery queryDTO);


    /**
     * 获取赛事详情
     *
     * @param eventId 赛事ID
     * @return 赛事详情
     */
    EventVO getEventDetail(Long eventId);


    /**
     * 获取参赛车辆实时位置
     *
     * @param eventId 赛事ID
     * @return 参赛车辆实时位置列表
     */
    List<EventVehicleLocationVO> getEventVehiclesRealtime(Long eventId);

    /**
     * 获取赛事统计信息
     *
     * @param eventId 赛事ID
     * @return 赛事统计信息
     */
    EventRegistrationVO getEventStatistics(Long eventId);

    /**
     * 获取活动英雄榜
     *
     * @param eventId 赛事ID
     * @return 英雄榜列表
     */
    List<EventHeroVO> getEventHeroes(Long eventId);

    /**
     * 获取活动瞬间
     *
     * @param query 查询参数
     * @return 活动瞬间分页
     */
    List<EventMomentVO> getEventMoments(EventMomentQuery query);

}
